package entity.evaluation.topic;

import entity.domain.topic.Type;
import entity.evaluation.value.ValueEvaluator;

import java.util.List;

public abstract class TopicEvaluator<T> {

    private Type topicType;
    private int topicNum;
    private double weight;
    private T valueEvaluator;
    private double maxEvalution;

    public TopicEvaluator(){}

    public TopicEvaluator(int topicNum){
        this.topicNum = topicNum;
    }

    public TopicEvaluator(int topicNum, double weight){
        this.topicNum = topicNum;
        this.weight = weight;
    }

    public TopicEvaluator(int topicNum, double weight, T valueEvaluator){
        this.topicNum = topicNum;
        this.weight = weight;
        this.valueEvaluator = valueEvaluator;
    }

    public Type getTopicType() {
        return topicType;
    }

    public void setTopicType(Type topicType) {
        this.topicType = topicType;
    }

    public int getTopicNum() {
        return topicNum;
    }

    public void setTopicNum(int topicNum) {
        this.topicNum = topicNum;
    }

    public double getWeight() {
        return weight;
    }

    public void setWeight(double weight) {
        this.weight = weight;
    }

    public T getValueEvaluator() {
        return valueEvaluator;
    }

    public void setValueEvaluator(T valueEvaluator) {
        this.valueEvaluator = valueEvaluator;
    }

    public double getMaxEvalution() {
        return maxEvalution;
    }

    public void setMaxEvalution(double maxEvalution) {
        this.maxEvalution = maxEvalution;
    }
}
